/**
 * Notes: 研发项目状态历史模型
 * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux0730 (wechat)
 * Date: 2023-08-30 19:20:00
 */


const BaseProjectModel = require('./base_project_model.js');

class ResearchStateHistoryModel extends BaseProjectModel {

	/** 构造函数 */
	constructor() {
		super();

		this.setModel('research_project_state_history');
	}

	/**
	 * 获取历史记录列表
	 * @param {*} service 服务
	 * @param {*} where 条件
	 * @param {*} params 参数
	 */
	async getList(service, where, params) {
		let fields = '*';
		let orderBy = 'HISTORY_ADD_TIME desc';
		let page = params.page || 1;
		let size = params.size || 10;
		let isTotal = params.isTotal || false;
		let oldTotal = params.oldTotal || 0;

		return await this.getListOfModel(service, where, fields, orderBy, page, size, isTotal, oldTotal);
	}

	/**
	 * 获取单条历史记录
	 * @param {*} service 服务
	 * @param {*} id 历史记录ID
	 */
	async getOne(service, id) {
		return await this.getOneOfModel(service, id);
	}

	/**
	 * 插入数据
	 * @param {*} service 服务
	 * @param {*} data 数据
	 */
	async insert(service, data) {
		return await this.insertOfModel(service, data);
	}

	/**
	 * 更新数据
	 * @param {*} service 服务
	 * @param {*} id 记录ID
	 * @param {*} data 数据
	 */
	async edit(service, id, data) {
		return await this.editOfModel(service, id, data);
	}

	/**
	 * 删除数据
	 * @param {*} service 服务
	 * @param {*} id 记录ID
	 */
	async del(service, id) {
		return await this.delOfModel(service, id);
	}

	/**
	 * 按项目ID删除历史记录
	 * @param {*} service 服务
	 * @param {*} projectId 项目ID
	 */
	async delByProjectId(service, projectId) {
		let where = {
			HISTORY_PROJECT_ID: projectId
		}
		return await this.del(where);
	}
}

module.exports = new ResearchStateHistoryModel(); 